#ifndef SCENES_DIALOGCONTROLS_H
#define SCENES_DIALOGCONTROLS_H

#include <vector>
#include <string>
#include <utility>

#include "gdn/GDN.h"
#include "gui/GUI.h"
#include "dialogs/Dialog.h"
#include "GameApplication.h"

class DialogControls : public Dialog
{
	public:
		DialogControls( GameApplication& theApp, gdn::Scene& theScene );

		virtual void Initialize();
		virtual void Terminate();

		virtual void Step( gdn::Event& event );
		virtual void Draw( gdn::RenderImage& renderImage );

	protected:
		GameApplication& App;
		gdn::Scene& Scene;

		gdn::Image* rouletteLeft;
		gdn::Image* rouletteMiddle;
		gdn::Image* rouletteRight;
		gdn::Font * font;

		gdn::Sprite background;


		std::vector< std::vector< std::pair< gdn::Text, gui::Roulette > > > controls;
		gui::Roulette controlPage;
		unsigned int currentPage;


		gui::Button closeButton;


		void AddItem( std::vector< std::pair< gdn::Text, gui::Roulette > >& page, const gdn::Vector2f& pos, const std::string& text, const std::vector< std::string >& options, unsigned int theDefault, float offset );
		size_t FindCorrespondingIndex( const std::vector< std::string >& vector, const std::string& string );
};

#endif // SCENES_DIALOGCONTROLS_H
